<?php
// +----------------------------------------------------------------------
// | HisiPHP框架[基于ThinkPHP5.1开发]
// +----------------------------------------------------------------------
// | Copyright (c) 2016-2021 http://www.HisiPHP.com
// +----------------------------------------------------------------------
// | HisiPHP承诺基础框架永久免费开源，您可用于学习和商用，但必须保留软件版权信息。
// +----------------------------------------------------------------------
// | Author: 橘子俊 <364666827@qq.com>，开发者QQ群：50304283
// +----------------------------------------------------------------------

namespace app\common\service;

use app\common\service\Base;

class TTask extends Base
{

	/**
	 * 根据ID获取单条信息
	 *
	 * @author KING
	 * @date 2020年7月1日
	 *
	 * @param integer $id
	 * @return array
	 */
	public function getInfoById($id, $field='*') {
		if (empty($id)) return [];
		return db('t_task')->where('id', $id)->field($field)->findOrEmpty();
	}

	/**
	 * 检测是否已关注
	 *
	 * @author King
	 * @date 2020年8月22日
	 *
	 * @param integer $taskId		任务ID
	 */
	public function checkIsAttention($taskId) {
		return db('t_task_attention')->where('task_id', $taskId)->where('admin_id', ADMIN_ID)->count()?1:0;
	}

	/**
	 * 获取评论数
	 *
	 * @author King
	 * @date 2020年8月22日
	 *
	 * @param integer $taskId		任务ID
	 * @return number
	 */
	public function getCommentNum($taskId) {
		return db('t_task_comment')->where('task_id', $taskId)->where('status', 1)->count(1);
	}

	/**
	 * 获取任务的最后主负责人
	 *
	 * @author King
	 * @date 2020年9月17日
	 *
	 * @param integer $taskId
	 */
	public function getProgressLastAdminId($taskId) {
		return db('t_task_progress')->where('task_id', $taskId)->order('id desc')->value('admin_id', 0);
	}

	/**
	 * 获取任务的最后主负责人
	 *
	 * @author King
	 * @date 2020年9月17日
	 *
	 * @param integer $taskId
	 */
	public function getProgressLastAdminInfo($taskId) {
		$result = ['admin_avatar' => '', 'admin_name' => ''];
		if (empty($taskId)) return $result;
		$adminId = db('t_task_progress')->where('task_id', $taskId)->order('id desc')->value('admin_id', 0);
		if (empty($adminId)) {
			$taskInfo = $this->getInfoById($taskId, 'admin_id');
			$adminId = $taskInfo['admin_id'];
		}
		$systemUserKV = getSystemUserKV(null);
		$systemUserAvatarKV = getSystemUserAvatarKV(null);
		$result['admin_name'] = arrayGet($systemUserKV, $adminId, '');
		$result['admin_avatar'] = arrayGet($systemUserAvatarKV, $adminId, '');
		return $result;
	}

	/**
	 * 获取任务流转列表
	 *
	 * @author King
	 * @date 2020年9月17日
	 *
	 * @param integer $taskId
	 */
	public function getProgressList($taskId) {
		$list = db('t_task_progress')->where('task_id', $taskId)->order('id asc')->select();
		if($list) {
			$systemUserKV = getSystemUserKV(null);
			$systemUserAvatarKV = getSystemUserAvatarKV(null);

			foreach ($list as $k => $v) {
				$list[$k]['admin_name'] = arrayGet($systemUserKV, $v['admin_id'], '');
				$list[$k]['admin_avatar'] = arrayGet($systemUserAvatarKV, $v['admin_id'], '');
			}
		}
		return $list;
	}
}